Fixing up some ABI issues git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@134639 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/strstream b/include/strstream index 8f4ed0c..4ff34a5 100644 --- a/include/strstream +++ b/include/strstream 
@@ -150,7 +150,9 @@  strstreambuf(const unsigned char* __gnext, streamsize __n);    #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES + _LIBCPP_INLINE_VISIBILITY  strstreambuf(strstreambuf&& __rhs); + _LIBCPP_INLINE_VISIBILITY  strstreambuf& operator=(strstreambuf&& __rhs);  #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES   @@ -187,6 +189,43 @@  void __init(char* __gnext, streamsize __n, char* __pbeg);  };   +#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES + +inline _LIBCPP_INLINE_VISIBILITY +strstreambuf::strstreambuf(strstreambuf&& __rhs) + : streambuf(__rhs), + __strmode_(__rhs.__strmode_), + __alsize_(__rhs.__alsize_), + __palloc_(__rhs.__palloc_), + __pfree_(__rhs.__pfree_) +{ + __rhs.setg(nullptr, nullptr, nullptr); + __rhs.setp(nullptr, nullptr); +} + +inline _LIBCPP_INLINE_VISIBILITY +strstreambuf& +strstreambuf::operator=(strstreambuf&& __rhs) +{ + if (eback() && (__strmode_ & __allocated) != 0 && (__strmode_ & __frozen) == 0) + { + if (__pfree_) + __pfree_(eback()); + else + delete [] eback(); + } + streambuf::operator=(__rhs); + __strmode_ = __rhs.__strmode_; + __alsize_ = __rhs.__alsize_; + __palloc_ = __rhs.__palloc_; + __pfree_ = __rhs.__pfree_; + __rhs.setg(nullptr, nullptr, nullptr); + __rhs.setp(nullptr, nullptr); + return *this; +} + +#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +  class _LIBCPP_VISIBLE istrstream  : public istream  {